#include "showbmp.h"
#include "touch.h"
#include "head.h" //调用头文件时，引用""和<>的区别
#include "rfid.h"
#include <string.h>


//#include <pthread.h>



void show_sel(int cid)
{
   switch (cid)
   {
   case 0xadddf9b3:
      show_bmp("car1.bmp", 200, 100);

      break;

   case 0xadb17013:
      show_bmp("car2.bmp", 200, 100);

      break;

   default:
      break;
   }
}

int main()
{
   showInit();
   touchInit();
   init_tty();




   show_bmp("main.bmp", 0, 0);
   extern int x, y, t;
   int c, cd;
   while (1)
   {


      touching();
      printf("(%d,%d,%d)\n", x, y, t);
      // int snd_id = 0;

      //规则定义
      if ((x > 430 && x < 585) && (y > 463 && y < 530) && t == 0) //刷卡
      {
         while (1)
         {

            printf("刷卡模式\n");
            rfid_flow();
            show_sel(crad_id);
            rfid_read(1);
            DataWriteBuf[15] = car_id;
            rfid_write();
            sleep(1);
            show_bmp("sk.bmp", 0, 0);
            crad_id = 0;

            sleep(2);
            x = y = 0;
            t = 1;
         }
      }
      if ((x > 200 && x < 362) && (y > 463 && y < 530) && t == 0) //充值
      {
         // printf("写入卡号：(默认充值50元)");
         // scanf("%d", &cd);
         show_bmp("cz.bmp", 0, 0);
         rfid_flow();
         rfid_read(0);
         while (1)
         {
            /* code */
            touching();

            if ((x > 33 && x < 100) && (y > 134 && y < 167) && t == 0) // 10块
            {
               DataWriteBuf[14] = DataWriteBuf[14] + 10;
               break;
            }
            if ((x > 33 && x < 100) && (y > 212 && y < 248) && t == 0) // 20块
            {
               DataWriteBuf[14] = DataWriteBuf[14] + 20;
               break;
            }
            if ((x > 33 && x < 100) && (y > 301 && y < 337) && t == 0) // 50块
            {
               DataWriteBuf[14] = DataWriteBuf[14] + 50;
               break;
            }
            if ((x > 33 && x < 100) && (y > 381 && y < 418) && t == 0) // 10块
            {
               DataWriteBuf[14] = DataWriteBuf[14] + 100;
               break;
            }
         }
         if (0xadddf9b3 == crad_id)
         {
            cd = 250;
         }
         if (0xadb17013 == crad_id)
         {
            cd = 222;
         }
         DataWriteBuf[15] = cd;
         rfid_write();
         show_bmp("ok.bmp", 320, 200);
         sleep(1);
         show_bmp("main.bmp", 0, 0);
         x = y = 0;
         t = 1;
      }
      if ((x > 659 && x < 821) && (y > 463 && y < 530) && t == 0) //查询
      {
         rfid_flow();
         rfid_read(0);
         x = y = 0;
         t = 1;
      }
      if ((x > 909 && x < 1020) && (y > 547 && y < 599) && t == 0) //退出
      {
         touchExit();
         printf("quit!\n");
         show_color();
         return 0;
      }

      // rfid_flow();
      // printf("选择:1读取 2写入数据 3写入卡号 4车库模式 5模拟扣费\n");
      // scanf("%d", &c);

      // switch (c)
      // {
      // case 1:
      //    rfid_flow();
      //    rfid_read();
      //    break;
      // case 2:
      //    rfid_flow();
      //    rfid_write();
      //    break;
      // case 3:
      //    printf("写入卡号：(默认充值50元)");
      //    scanf("%d", &cd);
      //    rfid_flow();
      //    DataWriteBuf[15] = cd;
      //    DataWriteBuf[14] = 50;
      //    rfid_write();
      //    break;
      // case 4:
      //    while (1)
      //    {

      //       printf("车库模式\n");
      //       rfid_flow();
      //       show_sel(crad_id);
      //       rfid_read();
      //       DataWriteBuf[15] = car_id;
      //       rfid_write();
      //       show_bmp("main.bmp", 0, 0);
      //       crad_id = 0;
      //       sleep(2);
      //    }
      // case 5:
      //    rfid_flow();
      //    rfid_read();
      //    DataWriteBuf[14] = (int)DataWriteBuf[14] - 1;
      //    rfid_write();
      //    printf("余额：%d", DataWriteBuf[14]);
      //    DataWriteBuf[14] = 0;
      //    break;

      // default:
      //    printf("输入错误\n");
      //    x = 0;
      //    y = 0;
      //    t = 1;
      //    break;
      // }
      usleep(1000);

      // printf("ID=%x\n",crad_id)

      // }

      // date -s 202209281031
   }
 
   touchExit();

   return 0;
}